Typically, a storage apparatus is configured comprising a plurality of HDD (Hard Disk Drives) installed as an array and a control unit which performs control of a plurality of HDD operations thereof by means of a RAID (Redundant Array of Inexpensive Disks) system. Further, a storage apparatus provides a logical storage area, which is made redundant by the RAID system, to a host via a network such as a SAN (Storage Area Network). The logical storage area provided to the host is called a logical volume.
Conventionally, a user using a storage apparatus must determine an expected storage capacity which will be required in the future at the design stage of the storage apparatus and must pre-purchase an HDD for which no usage is planned at the design stage, and assign the HDD to a logical volume. There is therefore a problem in that initial costs increase.
Therefore, in recent years, in order to solve the problem of increased initial costs, advances have been made in developing the technology known as thin provisioning.
In a storage apparatus which comprises this thin provisioning, storage areas called pool areas are configured. A pool area is a set of storage areas which are configured from one or more RAID groups. Therefore, in the storage apparatus, virtual storage areas called virtual volumes are assigned from the pool areas. The virtual volumes are shared by a plurality of hosts.
During virtual volume assignment, in which the virtual volumes are assigned, only management information is set. Further, during writing, when data is actually written from a host, a storage area of the required storage capacity is dynamically assigned to the virtual volume. The units for storage capacity assignment which are dynamically assigned to the virtual volume are called logical segments. The storage capacity assignment units need not necessarily be of a fixed length size, rather, the size may change according to the storage apparatus type and user settings.
Thus, with thin provisioning, there is the advantage that no pre-purchase of the HDD which actually provide the storage areas is required at the storage apparatus design stage, and hence it is possible to curb any increase in the initial costs.
Further, as described earlier, in a storage apparatus which comprises thin provisioning, virtual volumes which are provided to a host are configured from virtualized logical segments. Meanwhile, pool areas, in which the storage areas of the logical segments are assigned to the virtual volumes, are configured from physical segments which are physical areas of a fixed size for storing data and to which actual storage capacity is assigned.
In a storage apparatus, the logical segments are managed in association with any of the physical segments stored in the storage apparatus. The host is able to access the physical segments associated with the logical segments via the logical segments by accessing the logical segments.
Moreover, in recent years, advances have been made in the development of technology for virtually constructing a plurality of hosts in a host. A virtually constructed host is known as a virtual machine.
Virtual machines are used with the object of alleviating the management burden and reducing costs by aggregating host resources. The disk area used by a virtual machine is stored as a virtual disk in a storage apparatus. Virtual disks include VMDK (Virtual Machine DisK format) by VMware, for example.
The host monitors the states of virtual disks and if the usage rate of a storage area is equal to or more than a fixed ratio or the response time by the storage apparatus is delayed, an operation to migrate the virtual disk to another storage resource (pool area, for example) is carried out in order to equalize the load on the storage apparatus. Such an operation can be realized by means of an SDRS (Storage Distributed Resource Scheduler) by VMware, for example, or the like.
PTL 1 discloses a duplicate removal technology which detects a data match for data stored in storage apparatuses by using hash values for each physical segment of a fixed size, and which, if a physical segment exhibiting data duplication is found, releases a remaining redundant physical segment other than a specific physical segment.
A pointer from a logical segment in the virtual volume associated with the released physical segment is changed so as to reference the remaining physical segment. By releasing the duplicate physical segment in this way, the storage capacity of the storage apparatus can be reduced.
Note that, the data duplicate determination may be executed for each fixed period among data which has already been stored in the storage apparatus, or a determination may be made, when data is written from a host to the storage apparatus, by comparing the data with data which has already been stored in the storage apparatus.
Further, the physical segment size may be an assignment size which is dynamically assigned by means of thin provisioning, for example, or may be a predetermined fixed size or variable length size. Typically, the smaller the size of the segment subjected to a data comparison, the higher the probability of a data match between physical segments.
PTL2 discloses technology for dynamically executing virtual disk migration. More specifically, when a virtual disk which is a data area of a virtual machine stored in the storage apparatus is migrated, a virtual disk snapshot is created by using snapshot technology. Further, after copying a migration-source virtual disk to a migration-destination virtual disk, virtual disk migration is executed dynamically by integrating update data which is recorded in the snapshot.